package com.itheima.service.user;

import com.itheima.entity.PageResult;
import com.itheima.entity.QueryPageBean;
import com.itheima.pojo.User;

import java.util.List;

/**
 * @author 郭文亮
 * @since 2021/11/4 15:36
 */
/**
 * @author 胡桂明
 * @since 2021/11/5 19:42
 */
public interface UserService {
    /**
     * 通过用户名和密码查找用户，用户登录功能
     * @param user 用户信息，主要用到用户名和密码
     * @return 是否查找到该用户
     */
    Boolean findUserByUsernameAndPassword(User user);

    /**
     * 生成token存储到redis中后，返回给前端
     * @param user 需要存储到redis中的数据，主要是用户名和密码
     * @return 生成的token
     */
    String getTokenToRedis(User user);

    /**
     * 随机生成短信验证码
     * @param phone 发送验证码到该手机号
     * @return 验证码
     */
    String getCode(String phone);

    Boolean register(User user);

    /**
     * 新增
     * @param user   传入对象数据
     * @return          返回结果
     */
    boolean save(User user);

    /**
     * 删除
     * @param id    删除条件
     * @return      返回结果
     */
    boolean delete(int id);

    /**
     * 修改
     * @param user   传入对象数据
     * @return          返回结果
     */
    boolean update(User user);

    /**
     * 按ID查找-修改用
     * @param id    查询条件
     * @return      返回查询结果
     */
    User findById(String id);

    /**
     * 查询全部
     * @param queryPageBean 查询条件
     * @return  返回查询结果
     */
    PageResult findAll(QueryPageBean queryPageBean);
}
